package models

import "time"

// Book 表示图书信息
type Book struct {
	ID          uint      `gorm:"primaryKey"`
	Title       string    // 标题
	Author      string    // 作者
	Publisher   string    // 出版社
	CategoryID  *uint64   // 分类ID
	Category    Category  // 关联分类
	PublishedAt time.Time // 出版日期
	Description string    // 描述
}

// Category 表示图书分类
type Category struct {
	ID    uint   `gorm:"primaryKey"`
	Name  string // 分类名称
	Books []Book `gorm:"foreignKey:CategoryID"`
}

// User 表示读者/用户
type User struct {
	ID    uint   `gorm:"primaryKey"`
	Name  string // 姓名
	Email string // 邮箱
	Phone string // 电话
}

// Borrow 表示借阅记录
type Borrow struct {
	ID         uint       `gorm:"primaryKey"`
	BookID     uint       // 借阅的书ID
	Book       Book       // 关联图书
	UserID     uint       // 借书人ID
	User       User       // 关联用户
	BorrowDate time.Time  // 借出日期
	ReturnDate *time.Time // 归还日期（可空）
}

// Log 表示操作日志
type Log struct {
	ID        uint      `gorm:"primaryKey"`
	Action    string    // 操作描述
	Timestamp time.Time // 时间戳
}
